home *** CD-ROM | disk | FTP | other *** search
/ Freelog 117 / FreelogNo117-OctobreNovembre2013.iso / Programmation / jedit / jedit5.1.0install.exe / {app} / modes / vhdl.xml < prev    next >
Extensible Markup Language  |  2013-07-28  |  15KB  |  464 lines

  1. <?xml version="1.0"?>
  2. <!--
  3.   contributed by M. Cesar R. Lacruz (mcesar@sec.upm.es)
  4.   v1.1 2008/08/29
  5.   from previous work by Dante Fabrizio and Nitsan Vardi
  6. -->
  7.  
  8. <!DOCTYPE MODE SYSTEM "xmode.dtd">
  9.  
  10. <MODE>
  11.     <PROPS>
  12.         <PROPERTY NAME="label" VALUE="VHDL"/>
  13.         <PROPERTY NAME="lineComment" VALUE="--"/>
  14.         <PROPERTY NAME="contextInsensitive" VALUE="true" />
  15.     </PROPS>
  16.     <RULES IGNORE_CASE="TRUE">
  17.  
  18.         <!-- string -->
  19.         <SPAN_REGEXP TYPE="LITERAL4" AT_WORD_START="TRUE" NO_LINE_BREAK="TRUE">
  20.             <BEGIN>[box]?"</BEGIN>
  21.             <END>"</END>
  22.         </SPAN_REGEXP>
  23.         <SPAN_REGEXP TYPE="LITERAL4" AT_WORD_START="TRUE" NO_LINE_BREAK="TRUE">
  24.             <BEGIN>[box]?%</BEGIN>
  25.             <END>%</END>
  26.         </SPAN_REGEXP>
  27.  
  28.         <!-- char -->
  29.         <SEQ_REGEXP TYPE="LITERAL1" HASH_CHAR="'">(?:'[\x20-\x7e\xa0-\xff]')</SEQ_REGEXP>
  30.  
  31.         <!-- predefined attribute -->
  32.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'left\b</SEQ_REGEXP>
  33.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'right\b</SEQ_REGEXP>
  34.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'low\b</SEQ_REGEXP>
  35.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'high\b</SEQ_REGEXP>
  36.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'ascending\b</SEQ_REGEXP>
  37.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'image\b</SEQ_REGEXP>
  38.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'value\b</SEQ_REGEXP>
  39.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'pos\b</SEQ_REGEXP>
  40.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'val\b</SEQ_REGEXP>
  41.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'succ\b</SEQ_REGEXP>
  42.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'pred\b</SEQ_REGEXP>
  43.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'leftof\b</SEQ_REGEXP>
  44.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'rightof\b</SEQ_REGEXP>
  45.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'base\b</SEQ_REGEXP>
  46.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'delayed\b</SEQ_REGEXP>
  47.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'stable\b</SEQ_REGEXP>
  48.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'quiet\b</SEQ_REGEXP>
  49.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'transaction\b</SEQ_REGEXP>
  50.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'event\b</SEQ_REGEXP>
  51.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'active\b</SEQ_REGEXP>
  52.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'last_event\b</SEQ_REGEXP>
  53.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'last_active\b</SEQ_REGEXP>
  54.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'last_value\b</SEQ_REGEXP>
  55.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'driving\b</SEQ_REGEXP>
  56.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'driving_value\b</SEQ_REGEXP>
  57.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'range\b</SEQ_REGEXP>
  58.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'reverse_range\b</SEQ_REGEXP>
  59.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'length\b</SEQ_REGEXP>
  60.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'simple_name\b</SEQ_REGEXP>
  61.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'path_name\b</SEQ_REGEXP>
  62.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'instance_name\b</SEQ_REGEXP>
  63.         <SEQ_REGEXP TYPE="KEYWORD3" HASH_CHAR="'">'foreign\b</SEQ_REGEXP>
  64.  
  65.         <!-- other attribute -->
  66.         <MARK_FOLLOWING TYPE="KEYWORD4" MATCH_TYPE="KEYWORD3">'</MARK_FOLLOWING>
  67.  
  68.         <!-- comment -->
  69.         <EOL_SPAN TYPE="COMMENT1">--</EOL_SPAN>
  70.  
  71.         <!-- label -->
  72.         <!-- sorry, but 'label : component_name', 'label : procedure_name'
  73.               & 'label : variable :=' are not managed, as they collide with
  74.               'generic_name : generic_type' -->
  75.         <SEQ_REGEXP TYPE="LABEL" AT_WHITESPACE_END="TRUE">
  76.             (\w|\w[\w\d_]*[\w\d])\s*(?=:)(?!:=)(?!:\s*\d)(?=:\s*(if\b|case\b|while\b|for\b|loop\b|next\b|null\b|block\b|process\b|wait\b|postponed\b|assert\b|with\b|entity\b|component\b|configuration\b|exit\b|return\b|(?:(?:\w[\w\d_]*\w|\w)\s*<=)))
  77.         </SEQ_REGEXP>
  78.  
  79.         <!-- operator -->
  80.         <SEQ TYPE="OPERATOR">(</SEQ>
  81.         <SEQ TYPE="OPERATOR">)</SEQ>
  82.         <SEQ TYPE="OPERATOR">=></SEQ>
  83.         <SEQ TYPE="OPERATOR">**</SEQ>
  84.         <SEQ TYPE="OPERATOR">:=</SEQ>
  85.         <SEQ TYPE="OPERATOR">/=</SEQ>
  86.         <SEQ TYPE="OPERATOR">>=</SEQ>
  87.         <SEQ TYPE="OPERATOR"><=</SEQ>
  88.         <SEQ TYPE="OPERATOR"><></SEQ>
  89.         <SEQ TYPE="OPERATOR">=</SEQ>
  90.         <SEQ TYPE="OPERATOR">:</SEQ>
  91.         <SEQ TYPE="OPERATOR">></SEQ>
  92.         <SEQ TYPE="OPERATOR"><</SEQ>
  93.         <SEQ TYPE="OPERATOR">+</SEQ>
  94.         <SEQ TYPE="OPERATOR">-</SEQ>
  95.         <SEQ TYPE="OPERATOR">/</SEQ>
  96.         <SEQ TYPE="OPERATOR">*</SEQ>
  97.         <SEQ TYPE="OPERATOR">&</SEQ>
  98.         <SEQ TYPE="OPERATOR">|</SEQ>
  99.  
  100.         <!-- number -->
  101.         <SEQ_REGEXP TYPE="DIGIT" AT_WORD_START="TRUE"
  102.             >\d{1,2}#(?:(?:[\da-f][\da-f_]*\.?[\da-f_]*[\da-f])|[\da-f])#(?:e[+-]?(?:\d[\d_]*\d|\d))?
  103.         </SEQ_REGEXP>
  104.         <SEQ_REGEXP TYPE="DIGIT" AT_WORD_START="TRUE"
  105.             >\d{1,2}:(?:(?:[\da-f][\da-f_]*\.?[\da-f_]*[\da-f])|[\da-f]):(?:e[+-]?(?:\d[\d_]*\d|\d))?
  106.         </SEQ_REGEXP>
  107.         <SEQ_REGEXP TYPE="DIGIT" AT_WORD_START="TRUE"
  108.             >(?:(?:\d[\d_]*\.?[\d_]*\d)|\d)(?:e[+-]?(?:\d[\d_]*\d|\d))?
  109.         </SEQ_REGEXP>
  110.  
  111.         <KEYWORDS>
  112.             <!-- VHDL-87 keyword -->
  113.             <KEYWORD1>access</KEYWORD1>
  114.             <KEYWORD1>after</KEYWORD1>
  115.             <KEYWORD1>alias</KEYWORD1>
  116.             <KEYWORD1>all</KEYWORD1>
  117.             <KEYWORD1>architecture</KEYWORD1>
  118.             <KEYWORD1>array</KEYWORD1>
  119.             <KEYWORD1>assert</KEYWORD1>
  120.             <KEYWORD1>attribute</KEYWORD1>
  121.             <KEYWORD1>begin</KEYWORD1>
  122.             <KEYWORD1>block</KEYWORD1>
  123.             <KEYWORD1>body</KEYWORD1>
  124.             <KEYWORD1>buffer</KEYWORD1>
  125.             <KEYWORD1>bus</KEYWORD1>
  126.             <KEYWORD1>case</KEYWORD1>
  127.             <KEYWORD1>component</KEYWORD1>
  128.             <KEYWORD1>configuration</KEYWORD1>
  129.             <KEYWORD1>constant</KEYWORD1>
  130.             <KEYWORD1>disconnect</KEYWORD1>
  131.             <KEYWORD1>downto</KEYWORD1>
  132.             <KEYWORD1>else</KEYWORD1>
  133.             <KEYWORD1>elsif</KEYWORD1>
  134.             <KEYWORD1>end</KEYWORD1>
  135.             <KEYWORD1>entity</KEYWORD1>
  136.             <KEYWORD1>exit</KEYWORD1>
  137.             <KEYWORD1>file</KEYWORD1>
  138.             <KEYWORD1>for</KEYWORD1>
  139.             <KEYWORD1>function</KEYWORD1>
  140.             <KEYWORD1>generate</KEYWORD1>
  141.             <KEYWORD1>generic</KEYWORD1>
  142.             <KEYWORD1>guarded</KEYWORD1>
  143.             <KEYWORD1>if</KEYWORD1>
  144.             <KEYWORD1>in</KEYWORD1>
  145.             <KEYWORD1>inout</KEYWORD1>
  146.             <KEYWORD1>is</KEYWORD1>
  147.             <KEYWORD1>label</KEYWORD1>
  148.             <KEYWORD1>library</KEYWORD1>
  149.             <KEYWORD1>linkage</KEYWORD1>
  150.             <KEYWORD1>loop</KEYWORD1>
  151.             <KEYWORD1>map</KEYWORD1>
  152.             <KEYWORD1>new</KEYWORD1>
  153.             <KEYWORD1>next</KEYWORD1>
  154.             <KEYWORD1>null</KEYWORD1>
  155.             <KEYWORD1>of</KEYWORD1>
  156.             <KEYWORD1>on</KEYWORD1>
  157.             <KEYWORD1>open</KEYWORD1>
  158.             <KEYWORD1>others</KEYWORD1>
  159.             <KEYWORD1>out</KEYWORD1>
  160.             <KEYWORD1>package</KEYWORD1>
  161.             <KEYWORD1>port</KEYWORD1>
  162.             <KEYWORD1>procedure</KEYWORD1>
  163.             <KEYWORD1>process</KEYWORD1>
  164.             <KEYWORD1>range</KEYWORD1>
  165.             <KEYWORD1>record</KEYWORD1>
  166.             <KEYWORD1>register</KEYWORD1>
  167.             <KEYWORD1>report</KEYWORD1>
  168.             <KEYWORD1>return</KEYWORD1>
  169.             <KEYWORD1>select</KEYWORD1>
  170.             <KEYWORD1>severity</KEYWORD1>
  171.             <KEYWORD1>signal</KEYWORD1>
  172.             <KEYWORD1>subtype</KEYWORD1>
  173.             <KEYWORD1>then</KEYWORD1>
  174.             <KEYWORD1>to</KEYWORD1>
  175.             <KEYWORD1>transport</KEYWORD1>
  176.             <KEYWORD1>type</KEYWORD1>
  177.             <KEYWORD1>units</KEYWORD1>
  178.             <KEYWORD1>until</KEYWORD1>
  179.             <KEYWORD1>use</KEYWORD1>
  180.             <KEYWORD1>variable</KEYWORD1>
  181.             <KEYWORD1>wait</KEYWORD1>
  182.             <KEYWORD1>when</KEYWORD1>
  183.             <KEYWORD1>while</KEYWORD1>
  184.             <KEYWORD1>with</KEYWORD1>
  185.  
  186.             <!-- VHDL-93 new keyword -->
  187.             <KEYWORD1>group</KEYWORD1>
  188.             <KEYWORD1>impure</KEYWORD1>
  189.             <KEYWORD1>inertial</KEYWORD1>
  190.             <KEYWORD1>literal</KEYWORD1>
  191.             <KEYWORD1>postponed</KEYWORD1>
  192.             <KEYWORD1>pure</KEYWORD1>
  193.             <KEYWORD1>reject</KEYWORD1>
  194.             <KEYWORD1>shared</KEYWORD1>
  195.             <KEYWORD1>unaffected</KEYWORD1>
  196.  
  197.             <!-- VHDL-2001 new keyword -->
  198.             <KEYWORD1>protected</KEYWORD1>
  199.  
  200.             <!-- VHDL-87 keyword, but shown as operator -->
  201.             <OPERATOR>abs</OPERATOR>
  202.             <OPERATOR>and</OPERATOR>
  203.             <OPERATOR>mod</OPERATOR>
  204.             <OPERATOR>nand</OPERATOR>
  205.             <OPERATOR>nor</OPERATOR>
  206.             <OPERATOR>not</OPERATOR>
  207.             <OPERATOR>or</OPERATOR>
  208.             <OPERATOR>rem</OPERATOR>
  209.             <OPERATOR>xor</OPERATOR>
  210.  
  211.             <!-- VHDL-93 new keyword, but shown as operator -->
  212.             <OPERATOR>rol</OPERATOR>
  213.             <OPERATOR>ror</OPERATOR>
  214.             <OPERATOR>sll</OPERATOR>
  215.             <OPERATOR>srl</OPERATOR>
  216.             <OPERATOR>sla</OPERATOR>
  217.             <OPERATOR>sra</OPERATOR>
  218.             <OPERATOR>xnor</OPERATOR>
  219.  
  220.             <!-- VHDL-87 keyword, but shown as function -->
  221.             <FUNCTION>deallocate</FUNCTION>
  222.  
  223.             <!-- built-in & standard type -->
  224.             <KEYWORD2>bit</KEYWORD2>
  225.             <KEYWORD2>bit_vector</KEYWORD2>
  226.             <KEYWORD2>boolean</KEYWORD2>
  227.             <KEYWORD2>character</KEYWORD2>
  228.             <KEYWORD2>delay_length</KEYWORD2>
  229.             <FUNCTION>now</FUNCTION>
  230.             <FUNCTION>file_open</FUNCTION>
  231.             <FUNCTION>file_close</FUNCTION>
  232.             <FUNCTION>read</FUNCTION>
  233.             <FUNCTION>write</FUNCTION>
  234.             <FUNCTION>endfile</FUNCTION>
  235.             <KEYWORD2>file_open_kind</KEYWORD2>
  236.             <KEYWORD2>file_open_status</KEYWORD2>
  237.             <KEYWORD2>integer</KEYWORD2>
  238.             <KEYWORD2>natural</KEYWORD2>
  239.             <KEYWORD2>positive</KEYWORD2>
  240.             <KEYWORD2>real</KEYWORD2>
  241.             <KEYWORD2>severity_level</KEYWORD2>
  242.             <KEYWORD2>string</KEYWORD2>
  243.             <KEYWORD2>time</KEYWORD2>
  244.             <!-- boolean -->
  245.             <LITERAL1>false</LITERAL1>
  246.             <LITERAL1>true</LITERAL1>
  247.             <!-- char, only those not having a ' ' representation -->
  248.             <LITERAL1>nul</LITERAL1>
  249.             <LITERAL1>soh</LITERAL1>
  250.             <LITERAL1>stx</LITERAL1>
  251.             <LITERAL1>etx</LITERAL1>
  252.             <LITERAL1>eot</LITERAL1>
  253.             <LITERAL1>enq</LITERAL1>
  254.             <LITERAL1>ack</LITERAL1>
  255.             <LITERAL1>bel</LITERAL1>
  256.             <LITERAL1>bs</LITERAL1>
  257.             <LITERAL1>ht</LITERAL1>
  258.             <LITERAL1>lf</LITERAL1>
  259.             <LITERAL1>vt</LITERAL1>
  260.             <LITERAL1>ff</LITERAL1>
  261.             <LITERAL1>cr</LITERAL1>
  262.             <LITERAL1>so</LITERAL1>
  263.             <LITERAL1>si</LITERAL1>
  264.             <LITERAL1>dle</LITERAL1>
  265.             <LITERAL1>dc1</LITERAL1>
  266.             <LITERAL1>dc2</LITERAL1>
  267.             <LITERAL1>dc3</LITERAL1>
  268.             <LITERAL1>dc4</LITERAL1>
  269.             <LITERAL1>nak</LITERAL1>
  270.             <LITERAL1>syn</LITERAL1>
  271.             <LITERAL1>etb</LITERAL1>
  272.             <LITERAL1>can</LITERAL1>
  273.             <LITERAL1>em</LITERAL1>
  274.             <LITERAL1>sub</LITERAL1>
  275.             <LITERAL1>esc</LITERAL1>
  276.             <LITERAL1>fsp</LITERAL1>
  277.             <LITERAL1>gsp</LITERAL1>
  278.             <LITERAL1>rsp</LITERAL1>
  279.             <LITERAL1>usp</LITERAL1>
  280.             <LITERAL1>del</LITERAL1>
  281.             <LITERAL1>c128</LITERAL1>
  282.             <LITERAL1>c129</LITERAL1>
  283.             <LITERAL1>c130</LITERAL1>
  284.             <LITERAL1>c131</LITERAL1>
  285.             <LITERAL1>c132</LITERAL1>
  286.             <LITERAL1>c133</LITERAL1>
  287.             <LITERAL1>c134</LITERAL1>
  288.             <LITERAL1>c135</LITERAL1>
  289.             <LITERAL1>c136</LITERAL1>
  290.             <LITERAL1>c137</LITERAL1>
  291.             <LITERAL1>c138</LITERAL1>
  292.             <LITERAL1>c139</LITERAL1>
  293.             <LITERAL1>c140</LITERAL1>
  294.             <LITERAL1>c141</LITERAL1>
  295.             <LITERAL1>c142</LITERAL1>
  296.             <LITERAL1>c143</LITERAL1>
  297.             <LITERAL1>c144</LITERAL1>
  298.             <LITERAL1>c145</LITERAL1>
  299.             <LITERAL1>c146</LITERAL1>
  300.             <LITERAL1>c147</LITERAL1>
  301.             <LITERAL1>c148</LITERAL1>
  302.             <LITERAL1>c149</LITERAL1>
  303.             <LITERAL1>c150</LITERAL1>
  304.             <LITERAL1>c151</LITERAL1>
  305.             <LITERAL1>c152</LITERAL1>
  306.             <LITERAL1>c153</LITERAL1>
  307.             <LITERAL1>c154</LITERAL1>
  308.             <LITERAL1>c155</LITERAL1>
  309.             <LITERAL1>c156</LITERAL1>
  310.             <LITERAL1>c157</LITERAL1>
  311.             <LITERAL1>c158</LITERAL1>
  312.             <LITERAL1>c159</LITERAL1>
  313.             <!-- severity_level -->
  314.             <LITERAL1>note</LITERAL1>
  315.             <LITERAL1>warning</LITERAL1>
  316.             <LITERAL1>error</LITERAL1>
  317.             <LITERAL1>failure</LITERAL1>
  318.             <!-- file_open_kind -->
  319.             <LITERAL1>read_mode</LITERAL1>
  320.             <LITERAL1>write_mode</LITERAL1>
  321.             <LITERAL1>append_mode</LITERAL1>
  322.             <!-- file_open_status -->
  323.             <LITERAL1>open_ok</LITERAL1>
  324.             <LITERAL1>status_error</LITERAL1>
  325.             <LITERAL1>name_error</LITERAL1>
  326.             <LITERAL1>mode_error</LITERAL1>
  327.  
  328.             <!-- ieee.std_logic_1164 -->
  329.             <KEYWORD2>std_logic</KEYWORD2>
  330.             <KEYWORD2>std_ulogic</KEYWORD2>
  331.             <KEYWORD2>std_logic_vector</KEYWORD2>
  332.             <KEYWORD2>std_ulogic_vector</KEYWORD2>
  333.             <KEYWORD2>x01</KEYWORD2>
  334.             <KEYWORD2>x01z</KEYWORD2>
  335.             <KEYWORD2>ux01</KEYWORD2>
  336.             <KEYWORD2>ux01z</KEYWORD2>
  337.             <FUNCTION>to_bit</FUNCTION>
  338.             <FUNCTION>to_bitvector</FUNCTION>
  339.             <FUNCTION>to_stdulogic</FUNCTION>
  340.             <FUNCTION>to_stdlogicvector</FUNCTION>
  341.             <FUNCTION>to_stdulogicvector</FUNCTION>
  342.             <FUNCTION>to_x01</FUNCTION>
  343.             <FUNCTION>to_x01z</FUNCTION>
  344.             <FUNCTION>to_ux01</FUNCTION>
  345.             <FUNCTION>rising_edge</FUNCTION>
  346.             <FUNCTION>falling_edge</FUNCTION>
  347.             <FUNCTION>is_x</FUNCTION>
  348.  
  349.             <!-- ieee.numeric_std -->
  350.             <KEYWORD2>signed</KEYWORD2>
  351.             <KEYWORD2>unsigned</KEYWORD2>
  352.             <FUNCTION>shift_left</FUNCTION>
  353.             <FUNCTION>shift_right</FUNCTION>
  354.             <FUNCTION>rotate_left</FUNCTION>
  355.             <FUNCTION>rotate_right</FUNCTION>
  356.             <FUNCTION>resize</FUNCTION>
  357.             <FUNCTION>std_match</FUNCTION>
  358.             <FUNCTION>to_integer</FUNCTION>
  359.             <FUNCTION>to_unsigned</FUNCTION>
  360.             <FUNCTION>to_signed</FUNCTION>
  361.  
  362.             <!-- std.textio -->
  363.             <KEYWORD2>line</KEYWORD2>
  364.             <KEYWORD2>text</KEYWORD2>
  365.             <KEYWORD2>side</KEYWORD2>
  366.             <KEYWORD2>width</KEYWORD2>
  367.             <LITERAL2>left</LITERAL2>
  368.             <LITERAL2>right</LITERAL2>
  369.             <LITERAL2>std_input</LITERAL2>
  370.             <LITERAL2>std_output</LITERAL2>
  371.             <LITERAL3>input</LITERAL3>
  372.             <LITERAL3>output</LITERAL3>
  373.             <FUNCTION>readline</FUNCTION>
  374.             <FUNCTION>writeline</FUNCTION>
  375.  
  376.             <!-- ieee.std_logic_textio -->
  377.             <FUNCTION>oread</FUNCTION>
  378.             <FUNCTION>owrite</FUNCTION>
  379.             <FUNCTION>hread</FUNCTION>
  380.             <FUNCTION>hwrite</FUNCTION>
  381.  
  382.             <!-- ieee.std_logic_arith -->
  383.             <KEYWORD2>signed</KEYWORD2>
  384.             <KEYWORD2>unsigned</KEYWORD2>
  385.             <KEYWORD2>small_int</KEYWORD2>
  386.             <FUNCTION>conv_integer</FUNCTION>
  387.             <FUNCTION>conv_unsigned</FUNCTION>
  388.             <FUNCTION>conv_signed</FUNCTION>
  389.             <FUNCTION>conv_std_logic_vector</FUNCTION>
  390.             <FUNCTION>shl</FUNCTION>
  391.             <FUNCTION>shr</FUNCTION>
  392.             <FUNCTION>ext</FUNCTION>
  393.             <FUNCTION>sxt</FUNCTION>
  394.  
  395.             <!-- ieee.math_real -->
  396.             <LITERAL2>math_e</LITERAL2>
  397.             <LITERAL2>math_1_over_e</LITERAL2>
  398.             <LITERAL2>math_pi</LITERAL2>
  399.             <LITERAL2>math_2_pi</LITERAL2>
  400.             <LITERAL2>math_1_over_pi</LITERAL2>
  401.             <LITERAL2>math_pi_over_2</LITERAL2>
  402.             <LITERAL2>math_pi_over_3</LITERAL2>
  403.             <LITERAL2>math_pi_over_4</LITERAL2>
  404.             <LITERAL2>math_3_pi_over_2</LITERAL2>
  405.             <LITERAL2>math_log_of_2</LITERAL2>
  406.             <LITERAL2>math_log_of_10</LITERAL2>
  407.             <LITERAL2>math_log2_of_e</LITERAL2>
  408.             <LITERAL2>math_log10_of_e</LITERAL2>
  409.             <LITERAL2>math_sqrt_2</LITERAL2>
  410.             <LITERAL2>math_1_over_sqrt_2</LITERAL2>
  411.             <LITERAL2>math_sqrt_pi</LITERAL2>
  412.             <LITERAL2>math_deg_to_rad</LITERAL2>
  413.             <LITERAL2>math_rad_to_deg</LITERAL2>
  414.             <FUNCTION>sign</FUNCTION>
  415.             <FUNCTION>ceil</FUNCTION>
  416.             <FUNCTION>floor</FUNCTION>
  417.             <FUNCTION>round</FUNCTION>
  418.             <FUNCTION>trunc</FUNCTION>
  419.             <FUNCTION>realmax</FUNCTION>
  420.             <FUNCTION>realmin</FUNCTION>
  421.             <FUNCTION>uniform</FUNCTION>
  422.             <FUNCTION>sqrt</FUNCTION>
  423.             <FUNCTION>cbrt</FUNCTION>
  424.             <FUNCTION>exp</FUNCTION>
  425.             <FUNCTION>log</FUNCTION>
  426.             <FUNCTION>log2</FUNCTION>
  427.             <FUNCTION>log10</FUNCTION>
  428.             <FUNCTION>sin</FUNCTION>
  429.             <FUNCTION>cos</FUNCTION>
  430.             <FUNCTION>tan</FUNCTION>
  431.             <FUNCTION>arcsin</FUNCTION>
  432.             <FUNCTION>arccos</FUNCTION>
  433.             <FUNCTION>arctan</FUNCTION>
  434.             <FUNCTION>sinh</FUNCTION>
  435.             <FUNCTION>cosh</FUNCTION>
  436.             <FUNCTION>tanh</FUNCTION>
  437.             <FUNCTION>arcsinh</FUNCTION>
  438.             <FUNCTION>arccosh</FUNCTION>
  439.             <FUNCTION>arctanh</FUNCTION>
  440.  
  441.             <!-- ieee.math_complex -->
  442.             <KEYWORD2>complex</KEYWORD2>
  443.             <KEYWORD2>positive_real</KEYWORD2>
  444.             <KEYWORD2>principal_value</KEYWORD2>
  445.             <KEYWORD2>complex_polar</KEYWORD2>
  446.             <KEYWORD2>re</KEYWORD2>
  447.             <KEYWORD2>im</KEYWORD2>
  448.             <KEYWORD2>mag</KEYWORD2>
  449.             <KEYWORD2>arg</KEYWORD2>
  450.             <LITERAL2>math_cbase_1</LITERAL2>
  451.             <LITERAL2>math_cbase_j</LITERAL2>
  452.             <LITERAL2>math_czero</LITERAL2>
  453.             <FUNCTION>cmplx</FUNCTION>
  454.             <FUNCTION>get_principal_value</FUNCTION>
  455.             <FUNCTION>complex_to_polar</FUNCTION>
  456.             <FUNCTION>polar_to_complex</FUNCTION>
  457.             <FUNCTION>conj</FUNCTION>
  458.  
  459.         </KEYWORDS>
  460.     </RULES>
  461. </MODE>
  462.  
  463.  
  464.